﻿Class CMConfigCamposValmer

    Dim SerGrales As New CServiciosGenerales()    

#Region "Carga página"
    Private Sub CMConfigCampoosValmer_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles Me.Loaded
        Try            
            CargaCampos()

            Mouse.OverrideCursor = Nothing
        Catch ex As Exception
            Dim intErrorCargaInicial As Integer = CUtileria.GrabarBitacora("ConfigCamposValmer", "Carga página", ex.Message)
            CUtileria.CompletarRegBitacora(intErrorCargaInicial)

            Mouse.OverrideCursor = Cursors.Arrow

            MessageBox.Show("Error TI500. " & ex.Message, "Carga página configuración campos Valmer", MessageBoxButton.OK, MessageBoxImage.Error)
        End Try
    End Sub

    Private Sub CargaCampos()
        grdCampos.ItemsSource = SerGrales.ObtieneCamposValmer()
        grdCampos.UpdateLayout()

        If grdCampos.Items.Count > 0 Then
            btnGuardar.IsEnabled = True
        Else
            btnGuardar.IsEnabled = False
        End If
    End Sub
#End Region

#Region "Operación"
    Private Sub grdCampos_CellEditEnding(sender As System.Object, e As System.Windows.Controls.DataGridCellEditEndingEventArgs) Handles grdCampos.CellEditEnding
        Select Case e.EditAction
            Case DataGridEditAction.Commit
                If Not sender.CurrentItem Is Nothing Then
                    Dim txtContenidoCelda As Object = sender.Columns(e.Column.DisplayIndex).GetCellContent(sender.CurrentItem)
                    Dim Columna As Integer = e.Column.DisplayIndex

                    If Columna > 0 Then
                        If txtContenidoCelda.Text.ToString.Length > 0 Then
                            Try
                                Dim intDato As Integer = Convert.ToInt64(txtContenidoCelda.Text)
                            Catch ex As Exception
                                CType(sender, DataGrid).CancelEdit(DataGridEditingUnit.Cell)
                            End Try
                        End If
                    End If
                End If
        End Select
    End Sub

    Private Sub btnGuardar_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btnGuardar.Click
        Dim msgResultado As MessageBoxResult = MessageBox.Show("¿Desea guardar la información?", "Guardar información", MessageBoxButton.YesNo, MessageBoxImage.Question)

        If msgResultado = MessageBoxResult.Yes Then
            Try
                Mouse.OverrideCursor = Cursors.Wait

                Dim lstTemp As List(Of CCampoValmer) = grdCampos.ItemsSource
                Dim blnResultado As Boolean = False
                Dim intBitacora = CUtileria.GrabarBitacora("ConfigCamposValmer", "Guarda información", "Se guarda la configuración de las posiciones de cada campo dentro de cada archivo de Valmer")

                Dim xmlElementos As XElement = New XElement("Campos", From dato In lstTemp Select New XElement("Campo", New XElement("Id", dato.Id), New XElement("Nombre", dato.Nombre), New XElement("PosicionBancarios", dato.PosicionBancarios), New XElement("PosicionGubernamental", dato.PosicionGubernamental), New XElement("PosicionCorporativos", dato.PosicionCorporativos), New XElement("PosicionNotas", dato.PosicionNotas), New XElement("PosicionVector", dato.PosicionVector)))
                Dim Cadena As String = xmlElementos.ToString()

                blnResultado = SerGrales.GuardaCamposValmer(Cadena, CServiciosMacrosSyBaseDB.IDUSUARIO)

                If blnResultado Then
                    CargaCampos()

                    CUtileria.CompletarRegBitacora(intBitacora)

                    Mouse.OverrideCursor = Nothing

                    MessageBox.Show("La información se guardo correctamente", "Guarda información", MessageBoxButton.OK, MessageBoxImage.Information)                
                End If                
            Catch ex As Exception
                Dim intErrorGuarda As Integer = CUtileria.GrabarBitacora("ConfigCamposValmer", "Guarda información", ex.Message)
                CUtileria.CompletarRegBitacora(intErrorGuarda)

                Mouse.OverrideCursor = Nothing

                MessageBox.Show("Error TI500. " & ex.Message, "Guarda información", MessageBoxButton.OK, MessageBoxImage.Error)
            End Try            
        End If
    End Sub
#End Region
End Class
